package com.beiing.tianshuai.tianshuai.network;

import android.content.Context;

import com.beiing.tianshuai.tianshuai.app.HttpRequestConstant;
import com.beiing.tianshuai.tianshuai.entity.ActiveReplyBean;
import com.beiing.tianshuai.tianshuai.entity.ActivitiesApplyForResultBean;
import com.beiing.tianshuai.tianshuai.entity.ActivitiesPublishBean;
import com.beiing.tianshuai.tianshuai.entity.AddFriendsBean;
import com.beiing.tianshuai.tianshuai.entity.CodeBean;
import com.beiing.tianshuai.tianshuai.entity.CommonBean;
import com.beiing.tianshuai.tianshuai.entity.ConsumeMarksBean;
import com.beiing.tianshuai.tianshuai.entity.CreateGroupBean;
import com.beiing.tianshuai.tianshuai.entity.DiscoveryCommentBean;
import com.beiing.tianshuai.tianshuai.entity.DiscoveryCommentListBean;
import com.beiing.tianshuai.tianshuai.entity.DiscoveryDetailsBean;
import com.beiing.tianshuai.tianshuai.entity.DiscoveryIsPraiseBean;
import com.beiing.tianshuai.tianshuai.entity.DiscoveryPraiseBean;
import com.beiing.tianshuai.tianshuai.entity.DynamicAddRelayCommentBean;
import com.beiing.tianshuai.tianshuai.entity.DynamicAddReplyBean;
import com.beiing.tianshuai.tianshuai.entity.DynamicAllMessageBean;
import com.beiing.tianshuai.tianshuai.entity.DynamicBean;
import com.beiing.tianshuai.tianshuai.entity.DynamicCollectBean;
import com.beiing.tianshuai.tianshuai.entity.DynamicCommentBean;
import com.beiing.tianshuai.tianshuai.entity.DynamicCommentNoticeBean;
import com.beiing.tianshuai.tianshuai.entity.DynamicDeleteBean;
import com.beiing.tianshuai.tianshuai.entity.DynamicDetailBean;
import com.beiing.tianshuai.tianshuai.entity.DynamicForwardBean;
import com.beiing.tianshuai.tianshuai.entity.DynamicPraiseBean;
import com.beiing.tianshuai.tianshuai.entity.DynamicPraiseNoticeBean;
import com.beiing.tianshuai.tianshuai.entity.DynamicPublishBean;
import com.beiing.tianshuai.tianshuai.entity.DynamicPublishImageBean;
import com.beiing.tianshuai.tianshuai.entity.DynamicRelayDetailBean;
import com.beiing.tianshuai.tianshuai.entity.DynamicShieldBean;
import com.beiing.tianshuai.tianshuai.entity.ETicketBean;
import com.beiing.tianshuai.tianshuai.entity.FeedBackBean;
import com.beiing.tianshuai.tianshuai.entity.FollowBean;
import com.beiing.tianshuai.tianshuai.entity.FollowResultBean;
import com.beiing.tianshuai.tianshuai.entity.FreshNewsListBean;
import com.beiing.tianshuai.tianshuai.entity.GroupDetailsBean;
import com.beiing.tianshuai.tianshuai.entity.HomeBean;
import com.beiing.tianshuai.tianshuai.entity.HuoDongCollectBean;
import com.beiing.tianshuai.tianshuai.entity.HuoDongCommentBean;
import com.beiing.tianshuai.tianshuai.entity.HuoDongDetailBean;
import com.beiing.tianshuai.tianshuai.entity.HuoDongItemBean;
import com.beiing.tianshuai.tianshuai.entity.HuoDongPraiseBean;
import com.beiing.tianshuai.tianshuai.entity.EventTypesBean;
import com.beiing.tianshuai.tianshuai.entity.IdentificationInfoBean;
import com.beiing.tianshuai.tianshuai.entity.IdentificationStatusBean;
import com.beiing.tianshuai.tianshuai.entity.IndexSearchListBean;
import com.beiing.tianshuai.tianshuai.entity.IsBindingBean;
import com.beiing.tianshuai.tianshuai.entity.ListUserBean;
import com.beiing.tianshuai.tianshuai.entity.MyAttentionBean;
import com.beiing.tianshuai.tianshuai.entity.MyCollectionBean;
import com.beiing.tianshuai.tianshuai.entity.MyDiscoveryBean;
import com.beiing.tianshuai.tianshuai.entity.MyFriendListBean;
import com.beiing.tianshuai.tianshuai.entity.MyGroupsBean;
import com.beiing.tianshuai.tianshuai.entity.MyInterestVideoBean;
import com.beiing.tianshuai.tianshuai.entity.MyOrderBean;
import com.beiing.tianshuai.tianshuai.entity.NewFriendMessageBean;
import com.beiing.tianshuai.tianshuai.entity.NoticeMarksBean;
import com.beiing.tianshuai.tianshuai.entity.PersonalAttentionBean;
import com.beiing.tianshuai.tianshuai.entity.PersonalAuditBean;
import com.beiing.tianshuai.tianshuai.entity.PersonalDataCardBean;
import com.beiing.tianshuai.tianshuai.entity.PersonalInfoBean;
import com.beiing.tianshuai.tianshuai.entity.PersonalPublishBean;
import com.beiing.tianshuai.tianshuai.entity.ReportResultBean;
import com.beiing.tianshuai.tianshuai.entity.SearchFriendBean;
import com.beiing.tianshuai.tianshuai.entity.SplashBean;
import com.beiing.tianshuai.tianshuai.entity.TopSearchAndClassificationBean;
import com.beiing.tianshuai.tianshuai.entity.UpdatePersonalInfoBean;
import com.beiing.tianshuai.tianshuai.entity.VersionInfoBean;
import com.beiing.tianshuai.tianshuai.interest.entity.InterestBean;
import com.beiing.tianshuai.tianshuai.interest.entity.InterestCategoriesBean;
import com.beiing.tianshuai.tianshuai.interest.entity.InterestVideoDetailBean;
import com.beiing.tianshuai.tianshuai.mine.entity.BindingBean;
import com.beiing.tianshuai.tianshuai.mine.entity.MineOrderDataBean;
import com.beiing.tianshuai.tianshuai.mine.entity.OrderApplyAfterSaleBean;
import com.beiing.tianshuai.tianshuai.mine.entity.OrderApplyAfterSalePostDataBean;
import com.beiing.tianshuai.tianshuai.mine.entity.OrderCommentDataBean;
import com.beiing.tianshuai.tianshuai.mine.entity.OrderDeleteBean;
import com.beiing.tianshuai.tianshuai.mine.entity.OrderExtendTransportBean;
import com.beiing.tianshuai.tianshuai.mine.entity.OrderRefundCancelBean;
import com.beiing.tianshuai.tianshuai.mine.entity.OrderRefundStateDataBean;
import com.beiing.tianshuai.tianshuai.mine.entity.OrderTransportDataBean;
import com.beiing.tianshuai.tianshuai.mine.entity.OrderUserAddressDataBean;
import com.beiing.tianshuai.tianshuai.mine.entity.OrderUserAddressDefaultDataBean;
import com.beiing.tianshuai.tianshuai.mine.entity.OrderUserAddressDeleteDataBean;
import com.beiing.tianshuai.tianshuai.mine.entity.OrderUserAddressEditDataBean;
import com.beiing.tianshuai.tianshuai.wxapi.bean.WeChatBean;
import com.beiing.tianshuai.tianshuai.wxapi.bean.WeChatUserInfoBean;

import io.reactivex.Completable;
import io.reactivex.Observable;
import okhttp3.RequestBody;
import okhttp3.ResponseBody;

/**
 * 封装RetrofitService中定义的方法
 * Created by magikliu on 2017/7/7.
 */

public class DataManager {

    private static RetrofitService mRetrofitService;
    private static Completable sTopSearchAndClassification;

    public DataManager(Context context) {
        mRetrofitService = RetrofitHelper.getInstance(context).getService();
    }

    /**********************与RetrofitServer中同名的方法***********************/

    //活动类型标题
    public static Observable<EventTypesBean> getEventTypes(String uid) {
        return mRetrofitService.getEventTypes(uid);
    }

    //活动分类
    public static Observable<HuoDongItemBean> getHuoDongItem(String id, int firstRow, int listRows) {
        return mRetrofitService.getHuoDongItem(id, firstRow, listRows);
    }

    //全部活动
    public static Observable<HuoDongItemBean> getAllHuoDong(int firstRow, int listRow) {
        return mRetrofitService.getAllHuoDong(firstRow, listRow);
    }

    //活动详情
    public static Observable<HuoDongDetailBean> getHuoDongDetail(String uid, String id) {
        return mRetrofitService.getHuoDongDetail(uid, id);
    }

    //活动评论
    public static Observable<HuoDongCommentBean> getHuoDongCommentResult(String aid, String uid, String content, String add_time) {
        return mRetrofitService.getHuoDongCommentResult(aid, uid, content, add_time);
    }

    //活动评论删除
    public static Observable<CodeBean> getActiveCommentDelResult(String id) {
        return mRetrofitService.getActiveCommentDelResult(id);
    }

    //活动回复
    public static Observable<ActiveReplyBean> getActiveReplyResult(String aid, String cid, String form_uid, String to_uid, String content, String comment, int type, String rid) {
        return mRetrofitService.getActiveReplyResult(aid, cid, form_uid, to_uid, content, comment, type, rid);
    }

    //活动回复删除
    public static Observable<DynamicDeleteBean> getActiveReplyDeleteResult(String aid, String id, String uid) {
        return mRetrofitService.getActiveReplyDeleteResult(aid, id, uid);
    }

    //活动回复点赞
    public static Observable<HuoDongPraiseBean> getActiveReplyPraiseResult(String uid, String aid, String cid, String rid, String to_uid) {
        return mRetrofitService.getActiveReplyPraiseResult(uid, aid, cid, rid, to_uid);
    }

    //活动收藏
    public static Observable<HuoDongCollectBean> getHuoDongCollectResult(String uid, String aid) {
        return mRetrofitService.getHuoDongCollectResult(uid, aid);
    }

    //活动点赞
    public static Observable<HuoDongPraiseBean> getHuoDongPraiseResult(String userid, String aid) {
        return mRetrofitService.getHuoDongPraiseResult(userid, aid);
    }

    //活动评论点赞
    public static Observable<HuoDongPraiseBean> getActiveCommentPraiseResult(String uid, String cid) {
        return mRetrofitService.getActiveCommentPraiseResult(uid, cid);
    }

//    //新鲜事轮播图
//    public static Observable<FreshBannerImgBean> getFreshBannerImg(int num) {
//        return mRetrofitService.getFreshBannerImg(num);
//    }

    //新鲜事列表
    public static Observable<FreshNewsListBean> getFreshNewsList(String uid, int page, int num, int picnum) {
        return mRetrofitService.getFreshNewsList(uid, page, num, picnum);
    }

    //新鲜事详情
    public static Observable<DiscoveryDetailsBean> getDiscoveryDetails(String f_id) {
        return mRetrofitService.getDiscoveryDetails(f_id);
    }

    //新鲜事--判断用户是否点赞
    public static Observable<DiscoveryIsPraiseBean> getDiscoveryIsPraiseResult(String u_id, String f_id) {
        return mRetrofitService.getDiscoveryIsPraiseResult(u_id, f_id);
    }

    //新鲜事点赞
    public static Observable<DiscoveryPraiseBean> getDiscoveryPraiseResult(String u_id, String f_id) {
        return mRetrofitService.getDiscoveryPraiseResult(u_id, f_id);
    }

    //新鲜事评论
    public static Observable<DiscoveryCommentBean> getDiscoveryCommentResult(String u_id, String f_id, String review) {
        return mRetrofitService.getDiscoveryCommentResult(u_id, f_id, review);
    }

    //新鲜事评论删除
    public static Observable<CodeBean> getDiscoveryCommentDelResult(String id) {
        return mRetrofitService.getDiscoveryCommentDelResult(id);
    }

    //发现 回复
    public static Observable<ActiveReplyBean> getDiscoveryReplyResult(String fid, String cid, String form_uid, String to_uid, String content, String comment, int type, String rid) {
        return mRetrofitService.getDiscoveryReplyResult(fid, cid, form_uid, to_uid, content, comment, type, rid);
    }

    //发现  删除回复
    public static Observable<DynamicDeleteBean> getDiscoveryReplyDeleteResult(String fid, String id, String uid) {
        return mRetrofitService.getDiscoveryReplyDeleteResult(fid, id, uid);
    }

    //发现  点赞回复
    public static Observable<DiscoveryPraiseBean> getDiscoveryReplyPraiseResult(String fid, String cid, String rid, String uid, String to_uid) {
        return mRetrofitService.getDiscoveryReplyPraiseResult(fid, cid, rid, uid, to_uid);
    }

    //新鲜事评论列表
    public static Observable<DiscoveryCommentListBean> getDiscoveryCommentList(String f_id, int page, int num, int type) {
        return mRetrofitService.getDiscoveryCommentList(f_id, page, num, type);
    }

    //新鲜事评论点赞
    public static Observable<DiscoveryPraiseBean> getDiscoveryCommentPraiseResult(String f_id, String u_id, String c_id) {
        return mRetrofitService.getDiscoveryCommentPraiseResult(f_id, u_id, c_id);
    }

    //动态发布 文字内容
    public static Observable<DynamicPublishBean> getDynamicPublishId(String uid, String content, String registration_id, String type) {
        return mRetrofitService.getDynamicPublishId(uid, content, registration_id, type);
    }
    public static Observable<DynamicPublishBean> setDynamicPublishId(RequestBody body) {
        return mRetrofitService.setDynamicPublishIdDataBean(body);
    }

    //动态发布  图片
    public static Observable<ResponseBody> getDynamicPublishResult(RequestBody body) {
        return mRetrofitService.getDynamicPublishResult(body);
    }
    public static Observable<DynamicPublishImageBean> setDynamicPublishImage(RequestBody body) {
        return mRetrofitService.setDynamicPublishImageDataBean(body);
    }

    //动态  点赞
    public static Observable<DynamicPraiseBean> getDynamicPraiseResult(String userid, String aid, String to_uid) {
        return mRetrofitService.getDynamicPraiseResult(userid, aid, to_uid);
    }

    //动态  转发点赞
    public static Observable<DynamicPraiseBean> getRelayPraiseResult(String uid, String rid, String did, String to_uid) {
        return mRetrofitService.getRelayPraiseResult(uid, rid, did, to_uid);
    }

    //动态   屏蔽
    public static Observable<DynamicShieldBean> getShieldResult(String uid, String did) {
        return mRetrofitService.getShieldResult(uid, did);
    }

    //动态   收藏
    public static Observable<DynamicCollectBean> getDynamicCollectResult(String uid, String did) {
        return mRetrofitService.getDynamicCollectResult(uid, did);
    }

    //动态   删除
    public static Observable<CommonBean> getDynamicDeleteResult(String uid, String did) {
        return mRetrofitService.getDynamicDeleteResult(uid, did);
    }

    //动态   删除转发
    public static Observable<CommonBean> getRelayDelResult(String uid, String rid) {
        return mRetrofitService.getRelayDelResult(uid, rid);
    }

    //动态   转发
    public static Observable<DynamicForwardBean> getForwardResult(String form_uid, String to_uid, String r_id, String content) {
        return mRetrofitService.getForwardResult(form_uid, to_uid, r_id, content);
    }

    //动态   详情页
    public static Observable<DynamicDetailBean> getDynamicDetail(String uid, String id, int type, int page, int num) {
        return mRetrofitService.getDynamicDetail(uid, id, type, page, num);
    }

    //动态   评论
    public static Observable<DynamicCommentBean> getDynamicCommentResult(String uid, String to_uid, String aid, String content, String register_id, String create_time) {
        return mRetrofitService.getDynamicCommentResult(uid, to_uid, aid, content, register_id, create_time);
    }

    //动态   删除评论
    public static Observable<DynamicDeleteBean> getCommentDeleteResult(String uid, String id, String did) {
        return mRetrofitService.getCommentDeleteResult(uid, id, did);
    }

    //动态   删除评论的回复
    public static Observable<DynamicDeleteBean> getReplyDeleteResult(String uid, String id) {
        return mRetrofitService.getReplyDeleteResult(uid, id);
    }

    //动态   删除转发评论
    public static Observable<DynamicDeleteBean> getRelayCommentDeleteResult(String uid, String id, String rid) {
        return mRetrofitService.getRelayCommentDeleteResult(uid, id, rid);
    }

    //动态    删除转发评论回复
    public static Observable<DynamicDeleteBean> getRelayReplyDeleteResult(String uid, String id) {
        return mRetrofitService.getRelayReplyDeleteResult(uid, id);
    }

    //动态  回复评论
    public static Observable<DynamicAddReplyBean> getDynamicAddReplyResult(String did, String cid, String form_uid, String to_uid, String content, String registration_id) {
        return mRetrofitService.getDynamicAddReplyResult(did, cid, form_uid, to_uid, content, registration_id);
    }

    //动态----转发----详情
    public static Observable<DynamicRelayDetailBean> getDynamicRelayDetail(String id, String uid, int type, int page, int num) {
        return mRetrofitService.getDynamicRelayDetail(id, uid, type, page, num);
    }

    //动态----转发----评论
    public static Observable<DynamicAddRelayCommentBean> getAddRelayCommentResult(String rid, String uid, String did, String to_uid, String content) {
        return mRetrofitService.getAddRelayCommentResult(rid, uid, did, to_uid, content);
    }

    //动态----转发----回复评论
    public static Observable<DynamicAddReplyBean> getAddRelayReplyResult(String rid, String cid, String form_uid, String to_uid, String content, String registration_id) {
        return mRetrofitService.getAddRelayReplyResult(rid, cid, form_uid, to_uid, content, registration_id);
    }

    //动态----评论点赞
    public static Observable<DynamicPraiseBean> getDynamicCommentPraiseResult(String uid, String cid, String to_uid, String did) {
        return mRetrofitService.getDynamicCommentPraiseResult(uid, cid, to_uid, did);
    }

    //转发------评论点赞
    public static Observable<DynamicPraiseBean> getRelayCommentPraiseResult(String uid, String cid, String did, String to_uid, String rid) {
        return mRetrofitService.getRelayCommentPraiseResult(uid, cid, did, to_uid, rid);
    }

    //消息通知------动态 点赞
    public static Observable<DynamicPraiseNoticeBean> getDynamicPraiseNoticeResult(String uid, int firstRow, int listRows) {
        return mRetrofitService.getDynamicPraiseNoticeResult(uid, firstRow, listRows);
    }

    //消息通知-------动态 评论
    public static Observable<DynamicCommentNoticeBean> getDynamicCommentNoticeResult(String uid, int firstRow, int listRows) {
        return mRetrofitService.getDynamicCommentNoticeResult(uid, firstRow, listRows);
    }

    //消息通知-------查询 提示消息数量
    public static Observable<NoticeMarksBean> getNoticeMarksResult(String uid) {
        return mRetrofitService.getNoticeMarksResult(uid);
    }

    //消息通知--------消费点赞数量
    public static Observable<ConsumeMarksBean> getConsumeThingMarksResult(String uid) {
        return mRetrofitService.getConsumeThingMarksResult(uid);
    }

    //消息通知--------消费评论数量
    public static Observable<ConsumeMarksBean> getConsumeCommentMarksResult(String uid) {
        return mRetrofitService.getConsumeCommentMarksResult(uid);
    }

    //消息通知---------消费掉 新朋友数量
    public static Observable<ConsumeMarksBean> getConsumeNewFriendMarksResult(String uid) {
        return mRetrofitService.getConsumeNewFriendMarksResult(uid);
    }

    /**
     * 请求获取注册结果
     *
     * @return Observable
     */
    public static Observable<CodeBean> getSignUpResult(RequestBody body) {
        return mRetrofitService.getSignUpResult(body);
    }

    /**
     * 请求获取验证码
     *
     * @param number 邮箱
     * @return Observable
     */
    public static Observable<CommonBean> getSignUpCode(String number) {
        return mRetrofitService.getSignUpCode(
                number
        );
    }

    /**
     * 请求登录结果
     *
     * @param email 邮箱
     * @return Observable
     */
    public static Observable<com.beiing.tianshuai.tianshuai.entity.LoginBean> getLoginResult(String email, String pass) {
        return mRetrofitService.getLoginResult(
                email,
                pass
        );
    }

    /**
     * 请求我关注的用户列表结果
     *
     * @param id 用户id
     * @return Observable
     */
    public static Observable<MyAttentionBean> getMyAttentionResult(String id) {
        return mRetrofitService.getMyAttentionResult(
                id
        );
    }

    /**
     * 请求我粉丝的用户列表结果
     *
     * @param id 用户id
     * @return Observable
     */
    public static Observable<MyAttentionBean> getMyFansResult(String id) {
        return mRetrofitService.getMyFansResult(
                id
        );
    }

    /**
     * 请求我的收藏列表结果
     *
     * @param id 用户id
     * @return Observable
     */
    public static Observable<MyCollectionBean> getMyCollectionResult(String id) {
        return mRetrofitService.getMyCollectionResult(
                id
        );
    }

    /**
     * 请求动态列表结果
     *
     * @param id    用户id
     * @param start 条目起始位置
     * @param num   请求条目数量
     * @return Observable
     */
    public static Observable<DynamicBean> getDynamicsResult(String id, int start, int num, String dynamicsId, String relayId) {
        return mRetrofitService.getDynamicsResult(
                id,
                start,
                num,
                dynamicsId,
                relayId
        );
    }

//    public static Observable<FeedBackBean> getFeedbackResult(String uid, String content, String name, String sType, File pic) {
//        return mRetrofitService.getFeedbackResult(
//                uid,
//                content,
//                name,
//                sType,
//                pic
//        );
//    }

    /**
     * 带图提交反馈信息
     */
    public static Observable<FeedBackBean> getFeedbackResult(RequestBody body) {
        return mRetrofitService.getFeedbackResult(
                body
        );
    }

    /**
     * 不带图提交反馈信息
     */
    public static Observable<FeedBackBean> getFeedBackWithoutPicResult(String uid, String content, String name, String sType) {
        return mRetrofitService.getFeedBackWithoutPicResult(
                uid,
                content,
                name,
                sType
        );
    }

    /**
     * 请求用户个人资料
     */
    public static Observable<PersonalInfoBean> getPersonalInfoResult(String uid, String toUid) {
        return mRetrofitService.getPersonalInfoResult(uid, toUid, HttpRequestConstant.REQUEST_APP_KEY);
    }

    /**
     * 请求用户个人资料
     */
    public static Observable<PersonalDataCardBean> getPersonalCardInfoResult(String uid) {
        return mRetrofitService.getPersonalCardInfoResult(uid);
    }

    /**
     * 修改用户个人基本信息
     */
    public static Observable<UpdatePersonalInfoBean> getUpdatePersonalInfoResult(RequestBody requestBody) {
        return mRetrofitService.getUpdatePersonalInfoResult(requestBody);
    }

    /**
     * 修改用户头像
     */
    public static Observable<UpdatePersonalInfoBean> getUpdateAvatarResult(RequestBody body) {
        return mRetrofitService.getUpdateAvatarResult(body);
    }

    /**
     * 我的订单
     */
    public static Observable<MyOrderBean> getMyOrderInfoResult(String uid, int type, String lastId, int pageSize) {
        return mRetrofitService.getMyOrderInfoResult(type, uid, lastId, pageSize);
    }

    /**
     * 我的发布
     */
    public static Observable<ActivitiesPublishBean> getActivitiesPublishResult(String uid, String type, int star, int num) {
        return mRetrofitService.getActivitiesPublishResult(uid, type, star, num);
    }

    /**
     * 我的关注
     */
    public static Observable<PersonalAttentionBean> getPersonalAttention(String uid) {
        return mRetrofitService.getPersonalAttention(uid);
    }

    /**
     * 获取好友列表
     */
    public static Observable<MyFriendListBean> getMyFriendList(String uid) {
        return mRetrofitService.getMyFriendList(uid);
    }

    /**
     * 获取修改密码结果
     */
//    public static Observable<CommonBean> getEditPasswordResult(String email, String pass, String safeCode) {
//        return mRetrofitService.getEditPasswordResult(email, pass, safeCode);
//    }

    /**
     * 获取修改密码结果
     */
    public static Observable<CommonBean> getEditPasswordResult(RequestBody body) {
        return mRetrofitService.getEditPasswordResult(body);
    }
    /**
     * 获取验证码
     */
    public static Observable<CommonBean> getSafeCodeResult(String email) {
        return mRetrofitService.getSafeCodeResult(email);
    }

//    /**
//     * 核对验证码
//     */
//    public static Observable<CommonBean> getConfirmCodeResult(String safeCode, String email) {
//        return mRetrofitService.getConfirmCodeResult(safeCode, email);
//    }

    /**
     * 批量获取会话列表用户信息
     */
    public static Observable<ListUserBean> getMessageListUsersInfo(String users, String groups) {
        return mRetrofitService.getMessageListUsersInfo(users, groups);
    }

    /**
     * 获取添加好友通知
     */
    public static Observable<NewFriendMessageBean> getNewFriendMessage(String uid) {
        return mRetrofitService.getNewFriendMessage(uid);
    }

    /**
     * 获取添加好友结果回调
     */
    public static Observable<AddFriendsBean> getAddFriendResult(String fromId, String toId, String message) {
        return mRetrofitService.getAddFriendResult(fromId, toId, message, " ");
    }

    /**
     * 启动页数据
     */
    public static Observable<SplashBean> getSplashInfo() {
        return mRetrofitService.getSplashInfo();
    }

    /**
     * 拒绝添加好友
     */
    public static Observable<CommonBean> getRefuseResult(String id, String fromId, String toId) {
        return mRetrofitService.getRefuseResult(id, fromId, toId);
    }

    /**
     * 同意添加好友
     */
    public static Observable<CommonBean> getAgreeRequest(String id, String fromId, String toId) {
        return mRetrofitService.getAgreeRequest(id, fromId, toId);
    }

    /**
     * 判断是否关注对方
     */
    public static Observable<FollowBean> isFollowed(String fromUid, String toUid) {
        return mRetrofitService.isFollowed(fromUid, toUid);
    }

    /**
     * 获取关注请求的结果
     *
     * @param fromUid 发起者id
     * @param toUid   受关注着id
     * @return 结果
     */
    public static Observable<FollowResultBean> getFollowResult(String fromUid, String toUid) {
        return mRetrofitService.getFollowResult(fromUid, toUid);
    }

    /**
     * 搜索好友结果
     *
     * @param uid      用户id
     * @param keyWords 关键字
     * @return 结果
     */
    public static Observable<SearchFriendBean> getSearchFriendResult(String uid, String keyWords) {
        return mRetrofitService.getSearchFriendResult(uid, keyWords);
    }

    /**
     * 判断用户是否已经注册
     *
     * @param number 手机号
     * @return 结果
     */
    public static Observable<CommonBean> isAlreadySignUp(String number) {
        return mRetrofitService.isAlreadySignUp(number);
    }

    /**
     * 提交个人认证申请
     *
     * @param requestBody 请求体
     * @return 结果
     */
    public static Observable<ResponseBody> getSubmitIdentificationResult(RequestBody requestBody) {
        return mRetrofitService.getSubmitIdentificationResult(
                requestBody
        );
    }

    /**
     * 通用的提交个人认证申请
     *
     * @param requestBody 请求体
     * @return 结果
     */
    public static Observable<ResponseBody> requestIdentificationWithBody(String url, RequestBody requestBody) {
        return mRetrofitService.requestIdentificationWithBody(
                url,
                requestBody
        );
    }


    /**
     * 获取微信第三方登录回调信息
     *
     * @param get_access_token url
     * @return 结果
     */
    public static Observable<WeChatBean> getWeChatRequestResult(String get_access_token) {
        return mRetrofitService.getWeChatRequestResult(
                get_access_token
        );
    }

    /**
     * 获取微信第三方登录回调信息
     *
     * @param url url
     * @return 结果
     */
    public static Observable<WeChatUserInfoBean> getWeChatUserInfo(String url) {
        return mRetrofitService.getWeChatUserInfo(
                url
        );
    }

    /**
     * 获取电子票信息
     *
     * @param oid 订单id
     */
    public static Observable<ETicketBean> getETicketInformation(String oid) {
        return mRetrofitService.getETicketInformation(
                oid
        );
    }

    /**
     * 第三方登陆判断用户是否绑定手机号
     *
     * @param unionId 唯一标识
     * @param type    类型
     */
    public static Observable<IsBindingBean> isBinding(String unionId, String type) {
        return mRetrofitService.isBinding(unionId, type);
    }

    /**
     * 获取用户认证资料
     */
    public static Observable<IdentificationInfoBean> getIdentificationInfo(String uid, String type) {
        return mRetrofitService.getIdentificationInfo(uid, type);
    }

    /**
     * 获取绑定结果
     */
    public static Observable<BindingBean> getBindingResult(RequestBody body) {
        return mRetrofitService.getBindingResult(body);
    }

    /**
     * 获取收藏活动的删除结果
     *
     * @param uid 用户id
     * @param id  活动id
     * @return 结果
     */
    public static Observable<CommonBean> getMyCollectionDelResult(String uid, String id) {
        return mRetrofitService.getMyCollectionDelResult(uid, id);
    }

    /**
     * 取消订单
     *
     * @param oid 订单ID
     * @return 结果
     */
    public static Observable<CommonBean> getCancelRequestResult(String oid) {
        return mRetrofitService.getCancelRequestResult(oid);

    }

    /**
     * 删除订单
     *
     * @param oid 订单ID
     * @return 结果
     */
    public static Observable<OrderDeleteBean> getDelRequestResult(String oid) {
        return mRetrofitService.getDelRequestResult(oid);

    }

    /**
     * 判断是否为好友
     */
    public static Observable<CommonBean> isFriend(String fUid, String tUid) {
        return mRetrofitService.isFriend(fUid, tUid);
    }

    /**
     * 删除好友
     */
    public static Observable<CommonBean> getDelFriendRequestResult(String fUid, String tUid) {
//        try {
//            EMClient.getInstance().contactManager().deleteContact(tUid);
//        } catch (HyphenateException e) {
//            e.printStackTrace();
//        }
        return mRetrofitService.getDelFriendRequestResult(fUid, tUid);
    }

    /**
     * 新鲜事
     */
    public static Observable<CodeBean> getDiscoveryPublishResult(String content, String uid, String title, String freshCover) {
        return mRetrofitService.getDiscoveryPublishResult(content, uid, title, freshCover);
    }

    /**
     * 上传图片
     */
    public static Observable<ResponseBody> getUploadImgResult(RequestBody body) {
        return mRetrofitService.getUploadImgResult(body);
    }

    //发布活动
    public static Observable<CodeBean> getActivePublishResult(String strech, int tid, int uid, String sponsor, String action_time,
                                                              String exit_time, String location, String lessons, String cover, String content,
                                                              String contact, String tel, float much, int count, String create_time, int is_three, String three_url) {
        return mRetrofitService.getActivePublishResult(strech, tid, uid, sponsor, action_time, exit_time, location, lessons, cover, content, contact, tel, much, count, create_time, is_three, three_url);
    }

    //上传活动图片
    public static Observable<ResponseBody> getUploadActiveImgResult(RequestBody body) {
        return mRetrofitService.getUploadActiveImgResult(body);
    }

    /**
     * 创建群聊
     *
     * @param uid         用户id
     * @param groupName   群组名称
     * @param groupDesc   群简介
     * @param groupNotice 群公告
     * @param members     群成员
     * @return 结果
     */
    public static Observable<CreateGroupBean> getCreateGroupRequestResponse(String uid, String groupName, String groupDesc, String groupNotice, String members) {
        return mRetrofitService.getCreateGroupRequestResponse(
                uid, groupName, groupDesc, groupNotice, members);
    }

    /**
     * 初始化邀请群成员
     *
     * @param uid     群主id
     * @param members 群成员id
     * @param id      服务器端群id
     * @param groupId 环信端群id
     * @return 邀请结果
     */
    public static Observable<CodeBean> getInviteMembersRequestResponse(String uid, StringBuilder members, String id, String groupId) {
        return mRetrofitService.getInviteMembersRequestResponse(uid, members, id, groupId);
    }

    /**
     * 获取我的群列表
     *
     * @param uid 用户id
     * @return 群列表信息
     */
    public static Observable<MyGroupsBean> getMyGroupsRequestResponse(String uid) {
        return mRetrofitService.getMyGroupsRequestResponse(uid);
    }

    /**
     * 获取群资料
     *
     * @param uid 用户id
     * @param gid 群组id
     * @return 群资料
     */
    public static Observable<GroupDetailsBean> getGroupDetailsRequestResponse(String uid, String gid) {
        return mRetrofitService.getGroupDetailsRequestResponse(uid, gid);
    }

    /**
     * 获取修改群资料结果
     *
     * @param uid         用户id
     * @param gid         群组id
     * @param groupId     群组id
     * @param groupName   群名称
     * @param groupDesc   群简介
     * @param groupNotice 群公告
     * @return 结果
     */
    public static Observable<CommonBean> getEditGroupInfoRequestResponse(
            String uid, String gid, String groupId, String groupName,
            String groupDesc, String groupNotice) {
        return mRetrofitService.getEditGroupInfoRequestResponse(
                uid,
                gid,
                groupId,
                groupName,
                groupDesc,
                groupNotice
        );
    }

    /**
     * 获取添加群成员结果
     *
     * @param gid     群组id
     * @param easeGid 群组id
     * @param fId     邀请人id
     * @param tId     受邀人id
     * @param isOwner
     * @return 结果
     */
    public static Observable<CodeBean> getGroupAddMembersRequestResponse(
            String gid,
            String easeGid,
            String fId,
            String tId, String isOwner) {
        return mRetrofitService.getGroupAddMembersRequestResponse(
                gid,
                easeGid,
                fId,
                tId,
                isOwner
        );
    }

    /**
     * 删除群成员
     *
     * @param uid     群主id
     * @param toUid   用户id
     * @param gid     群组id
     * @param groupId 群组id
     * @return 结果
     */
    public static Observable<CodeBean> getGroupDelMembersRequestResponse(
            String uid, String toUid, String gid, String groupId) {
        return mRetrofitService.getGroupDelMembersRequestResponse(
                uid,
                toUid,
                gid,
                groupId
        );
    }

    /**
     * 群主解散群
     *
     * @param uid     群主id
     * @param id      群id
     * @param groupId 群id
     * @return 结果
     */
    public static Observable<CodeBean> getDismissGroupResult(
            String uid, String id, String groupId) {
        return mRetrofitService.getDismissGroupResult(
                uid, id, groupId
        );
    }

    /**
     * 退出群
     *
     * @param uid 用户id
     * @param id  群id
     * @return 结果
     */
    public static Observable<CodeBean> getQuitGroupResult(String uid, String id, String groupId) {
        return mRetrofitService.getQuitGroupResult(
                uid, id, groupId
        );
    }

    /**
     * 获取修改群组邀请权限结果
     *
     * @param uid 群主id
     * @param gid 群组id
     * @return 结果
     */
    public static Observable<CodeBean> getEditInvitedRootResult(String uid, String gid) {
        return mRetrofitService.getEditInvitedRootResult(
                uid, gid
        );
    }

    /**
     * 获取更新群组头像结果
     *
     * @param requestBody 头像
     * @return 结果
     */
    public static Observable<CodeBean> getUpdateGroupAvatarResult(RequestBody requestBody) {
        return mRetrofitService.getUpdateGroupAvatarResult(
                requestBody
        );
    }

    /**
     * 获取版本信息
     *
     * @return 版本信息
     */
    public static Observable<VersionInfoBean> getVersionInfo() {
        return mRetrofitService.getVersionInfo();
    }

    /**
     * 获取我的新鲜事
     *
     * @param uid 用户id
     * @return 新鲜事
     */
    public static Observable<MyDiscoveryBean> getMyDiscoveriesRequestResponse(String uid) {
        return mRetrofitService.getMyDiscoveriesRequestResponse(uid);
    }

    /**
     * 获取我的新鲜事
     *
     * @param id 新鲜事id
     * @return 结果
     */
    public static Observable<CodeBean> getDelMyDiscoveriesRequestResponse(String id) {
        return mRetrofitService.getDelMyDiscoveriesRequestResponse(id);
    }

    /**
     * 获取首页展示内容
     *
     * @param id
     * @return
     */
    public static Observable<HomeBean> getHomeContent(String id) {
        return mRetrofitService.getHomeContent(id);
    }

    /**
     * 首页上拉加载 列表数据
     *
     * @param page
     * @return
     */
    public static Observable<HomeBean> getHomeList(int page) {
        return mRetrofitService.getHomeList(page);
    }

    /**
     * 获取搜索内容
     *
     * @param title
     * @param typeId
     * @return
     */
    public static Observable<IndexSearchListBean> getSearchResult(String title, int typeId) {
        return mRetrofitService.getSearchResult(title, typeId);
    }

    /**
     * 获取兴趣数据
     *
     * @param body 请求体
     * @return 结果
     */
    public static Observable<InterestBean> getInterestInfo(RequestBody body) {
        return mRetrofitService.getInterestInfo(body);
    }

    /**
     * 顶踩操作
     *
     * @param body 请求体
     * @return 请求结果
     */
    public static Observable<CodeBean> getPriseResult(RequestBody body) {
        return mRetrofitService.getPriseResult(body);
    }

    /**
     * 兴趣视频举报操作
     *
     * @param body 请求体
     * @return 请求结果
     */
    public static Observable<CodeBean> getReportResult(RequestBody body) {
        return mRetrofitService.getReportResult(body);
    }


    /**
     * 获取动态的全部信息
     *
     * @param uid      用户id
     * @param firstRow 请求的其实item位置
     * @param listRows page size
     * @return 结果
     */
    public static Observable<DynamicAllMessageBean> getDynamicAllMessage(String uid, int firstRow, int listRows) {
        return mRetrofitService.getDynamicAllMessage(uid, firstRow, listRows);
    }

    /**
     * 兴趣视频上传
     *
     * @param body 请求体
     * @return 请求结果
     */
    public static Observable<CodeBean> getInterestSubmitResult(RequestBody body) {
        return mRetrofitService.getInterestSubmitResult(body);
    }

    /**
     * 获取兴趣分类列表
     *
     * @return 请求结果
     */
    public static Observable<InterestCategoriesBean> getInterestCategories() {
        return mRetrofitService.getInterestCategories();
    }

    /**
     * 获取视频详情信息
     *
     * @param body 请求体
     * @return 请求结果
     */
    public static Observable<InterestVideoDetailBean> getInterestDetail(RequestBody body) {
        return mRetrofitService.getInterestDetail(body);
    }

    /**
     * 发布视频评论
     *
     * @param body 请求体
     * @return 请求结果
     */
    public static Observable<CodeBean> getAddVideoReplyResult(RequestBody body) {
        return mRetrofitService.getAddVideoReplyResult(body);
    }

    /**
     * 视频评论点赞
     *
     * @param body 请求体
     * @return 请求结果
     */
    public static Observable<CodeBean> getReplyPriseResult(RequestBody body) {
        return mRetrofitService.getReplyPriseResult(body);
    }

    /**
     * 判断当前用户的登陆状态是否为406
     *
     * @param uid 当前缓存中的用户id
     * @return 结果
     */
    public static Observable<CodeBean> getLoginState(String uid) {
        return mRetrofitService.getLoginState(uid);
    }

    /**
     * 获取我的视频列表
     *
     * @param body 请求体
     * @return 结果
     */
    public static Observable<MyInterestVideoBean> getMyVideoContent(RequestBody body) {
        return mRetrofitService.getMyVideoContent(body);
    }

    /**
     * 删除我发布的视频
     *
     * @param body
     * @return
     */
    public static Observable<CodeBean> getMyVideoDeleteResult(RequestBody body) {
        return mRetrofitService.getMyVideoDeleteResult(body);
    }

    /**
     * 删除我发布的视频
     *
     * @param body
     * @return
     */
    public static Observable<CodeBean> deleteVideoReplyResult(RequestBody body) {
        return mRetrofitService.deleteVideoReplyResult(body);
    }

    /**
     * 获取投稿数据
     *
     * @param body 请求体
     * @return 结果
     */
    public static Observable<PersonalPublishBean> getPersonalPublish(RequestBody body) {
        return mRetrofitService.getPersonalPublish(body);
    }

    /**
     * 删除我的活动
     *
     * @param id 活动id
     * @return 结果
     */
    public static Observable<CodeBean> getDelMyActivityRequestResponse(String id) {
        return mRetrofitService.getDelMyActivityRequestResponse(id);
    }

    /**
     * 兴趣添加回复
     *
     * @param body 请求体
     * @return 结果
     */
    public static Observable<CodeBean> addCommentReply(RequestBody body) {
        return mRetrofitService.addCommentReply(body);
    }

    /**
     * 兴趣回复的点赞
     *
     * @param body 请求体
     * @return 结果
     */
    public static Observable<CodeBean> getCommentReplyPriseResult(RequestBody body) {
        return mRetrofitService.getCommentReplyPriseResult(body);
    }

    /**
     * 获取我的审核列表数据
     *
     * @param body 请求体
     * @return 结果
     */
    public static Observable<PersonalAuditBean> getPersonalAuditData(RequestBody body) {
        return mRetrofitService.getPersonalAuditData(body);
    }

    public static Observable<IdentificationStatusBean> getIdentificationStatus(String uid) {
        return mRetrofitService.getIdentificationStatus(uid);
    }

    /**
     * 获取订单信息
     *
     * @param body
     * @return 订单详情
     */
    public static Observable<MineOrderDataBean> getOrderData(RequestBody body) {
        return mRetrofitService.getOrderDataBean(body);
    }

    /**
     * 延长售后请求
     *
     * @param body body
     * @return code
     */
    public static Observable<OrderExtendTransportBean> extentOrderRequest(RequestBody body) {
        return mRetrofitService.getOrderExtendTransportBean(body);
    }

    /**
     * 删除订单请求
     *
     * @param body body
     * @return code
     */
    public static Observable<OrderDeleteBean> delOrderRequest(RequestBody body) {
        return mRetrofitService.getOrderDeleteBean(body);
    }

    /**
     * 获取订单物流信息
     *
     * @param body body
     * @return 物流信息
     */
    public static Observable<OrderTransportDataBean> getOrderTransportData(RequestBody body) {
        return mRetrofitService.getOrderTransportDataBean(body);
    }

    /**
     * 获取用户地址信息
     *
     * @param body 获取用户地址信息
     * @return 获取用户地址信息
     */
    public static Observable<OrderUserAddressDataBean> getOrderUserAddressData(RequestBody body) {
        return mRetrofitService.getOrderUserAddressDataBean(body);
    }

    /**
     * 用户默认地址信息返回值
     *
     * @param body 用户默认地址信息返回值
     * @return 用户默认地址信息返回值
     */
    public static Observable<OrderUserAddressDefaultDataBean> getOrderUserAddressDefaultData(RequestBody body) {
        return mRetrofitService.getOrderUserAddressDefaultDataBean(body);
    }

    /**
     * 用户删除地址信息返回值
     *
     * @param body 用户删除地址信息返回值
     * @return 用户删除地址信息返回值
     */
    public static Observable<OrderUserAddressDeleteDataBean> getOrderUserAddressDeleteData(RequestBody body) {
        return mRetrofitService.getOrderUserAddressDeleteDataBean(body);
    }

    /**
     * 用户添加或修改地址信息返回值
     *
     * @param body 用户添加或修改地址信息返回值
     * @return 用户添加或修改地址信息返回值
     */
    public static Observable<OrderUserAddressEditDataBean> getOrderUserAddressEditData(RequestBody body) {
        return mRetrofitService.getOrderUserAddressEditDataBean(body);
    }

    /**
     * 添加订单评论接口返回值
     *
     * @param body 添加订单评论接口返回值
     * @return 添加订单评论接口返回值
     */
    public static Observable<OrderCommentDataBean> setOrderCommentData(RequestBody body) {
        return mRetrofitService.setOrderCommentDataBean(body);
    }

    /**
     * 申请售后返回订单信息
     *
     * @param body 订单信息
     * @return 订单信息
     */
    public static Observable<OrderApplyAfterSaleBean> getOrderApplyAfterSaleData(RequestBody body) {
        return mRetrofitService.getOrderApplyAfterSaleDataBean(body);
    }

    /**
     * 获取申请售后上传货物信息返回值
     *
     * @param body 返回值
     * @return 返回值
     */
    public static Observable<OrderApplyAfterSalePostDataBean> postOrderApplyAfterSaleData(RequestBody body) {
        return mRetrofitService.postOrderApplyAfterSaleDataBean(body);
    }

    /**
     * 请求退货状态信息
     *
     * @param body 退货状态信息
     * @return 退货状态信息
     */
    public static Observable<OrderRefundStateDataBean> getOrderRefundStateData(RequestBody body) {
        return mRetrofitService.getOrderRefundStateDataBean(body);
    }

    /**
     * 获取取消售后返回码
     *
     * @param body 取消售后
     * @return code
     */
    public static Observable<OrderRefundCancelBean> getOrderRefundCancelData(RequestBody body) {
        return mRetrofitService.getOrderRefundCancelDataBean(body);
    }

    /**
     * 发送极光推送
     */
    public static Observable<DynamicDeleteBean> getPushResult(String status, int tag, int id, String type) {
        return mRetrofitService.getPushResult(status, tag, id, type);
    }

    /**
     * 通用举报
     */
    public static Observable<ReportResultBean> getRepotResult(RequestBody body) {
        return mRetrofitService.getRepotResult(body);
    }

    /**
     * 全局搜索获取热搜词和分类
     *
     * @return 热搜词和分类
     */
    public static Observable<TopSearchAndClassificationBean> getTopSearchAndClassification() {
        return mRetrofitService.getTopSearchAndClassification();
    }

    /**
     * 提交活动报名信息
     *
     * @return 报名结果
     */
    public static Observable<ActivitiesApplyForResultBean> getSubmitForFreeTicketResult(RequestBody body) {
        return mRetrofitService.getSubmitForFreeTicketResult(body);
    }
}